

export function checkURL(url:any) {
    const Expression=/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
    const objExp=new RegExp(Expression);
    if(objExp.test(url)){
        return true;
    }else{
        return false;
    }
}
import myMoment from "@/utils/common/myMoment";

export  const getStartEndTimeString=(time:any)=>{
    let start  = time.split(',')[0]
    let end  = time.split(',')[1]
    return myMoment(start).format('MMMDo HH:mm')+'-'+myMoment(end).format('MMMDo HH:mm')
}



// /**
//  * @desc  函数防抖
//  * @param {Function} func
//  * @param {number} wait
//  * @param {boolean} immediate
//  * @return {*}
//  */
// export function debounce(method:any, wait:any, immediate:any) {
//     let timeout
//     return function (...args) {
//         let context = this
//         if (timeout) {
//             clearTimeout(timeout)
//         }
//         // 立即执行需要两个条件，一是immediate为true，二是timeout未被赋值或被置为null
//         if (immediate) {
//             /**
//              * 如果定时器不存在，则立即执行，并设置一个定时器，wait毫秒后将定时器置为null
//              * 这样确保立即执行后wait毫秒内不会被再次触发
//              */
//             let callNow = !timeout
//             timeout = setTimeout(() => {
//                 timeout = null
//             }, wait)
//             if (callNow) {
//                 method.apply(context, args)
//             }
//         } else {
//             // 如果immediate为false，则函数wait毫秒后执行
//             timeout = setTimeout(() => {
//                 /**
//                  * args是一个类数组对象，所以使用fn.apply
//                  * 也可写作method.call(context, ...args)
//                  */
//                 method.apply(context, args)
//             }, wait)
//         }
//     }
// }


/**
 * 防抖 一定时间内执行一次  点击后时间到才触发，再次点击重新计时
 * 单位时间内事件触发会被重置，避免事件被误伤触发多次
 * @param fn
 * @param delay
 */
export function debounce (fn:Function, delay:number) {
    let timer :any
    return function () {
        if (timer) {
            clearTimeout(timer)
        }
        timer = setTimeout(() => {
            fn()
        }, delay)
    }
}

/**
 * 节流 一段时间内触发一次 触发后经过一段才能再触发
 * 单位时间内事件只能触发一次
 * @param fn
 * @param delay
 */
 export function throttle (fn:Function, delay:number) {
    let isThtottle = true
    return () => {
        if (!isThtottle) return
        isThtottle = false
        setTimeout(() => {
            fn()
            isThtottle = true
        }, delay)
    }
}
